package be.ipl.diavoloz.modele;

import java.io.Serializable;
import java.util.Random;

import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Transient;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;

@Entity
@Table(schema = "DIAVOLOZ", name = "DE")
public class De implements Serializable {

	private static final long serialVersionUID = -456072347388271621L;

	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private int id;

	@Transient
	private Random random = new Random();

	@Max(6)
	@Min(0)
	private int valeur;

	@Enumerated(EnumType.STRING)
	private Couleur couleur;


	@ManyToOne
	private Partie partie;

	public De(Couleur couleur) {
		this.couleur = couleur;
	}

	protected De() {
	}

	public int lancerDe() {
		return valeur = random.nextInt(6) + 1;
	}
	
	public int getId() {
		return this.id;
	}

	public int getValeur() {
		return this.valeur;
	}

	public Partie getPartie() {
		return partie;
	}

	public void setPartie(Partie partie) {
		this.partie = partie;
	}

	public Couleur getCouleur() {
		return couleur;
	}

	public void setCouleur(Couleur couleur) {
		this.couleur = couleur;
	}

	public void setValeur(int valeur) {
		this.valeur = valeur;
	}

}
